/**
 * @Copyright 
 * @Project inetdisk
 * @CreateTime 2015-10-26 上午11:04:21
 */
package ren.wxyz.inetdisk.vo;

import ren.wxyz.inetdisk.util.Constants;

/**
 * <p>
 * 统一返回消息
 * </p>
 * @Author wxyz
 * @CreateTime 2015-10-26 上午11:04:21 init class
 */
public class RespMsg<T> {
	/**
	 * 返回的数据
	 */
	private T data;
	
	/**
	 * 返回的状态码，0表示正常，其他为各种错误
	 */
	private int code;
	/**
	 * 返回的状态消息
	 */
	private String msg;
	
	/**
	 * <p>
	 * 默认构造器
	 * </p>
	 * @CreateTime 2015-10-28 下午7:24:49 create constructor
	 */
	public RespMsg() {
		this(Constants.MSG_OK, "OK");
	}
	
	/**
	 * <p>
	 * 需要返回没有数据的状态消息
	 * </p>
	 * @param code 错误码
	 * @param msg 错误消息
	 * @CreateTime 2015-10-26 上午11:09:28 create constructor
	 */
	public RespMsg(int code, String msg) {
		this.code = code;
		this.msg = msg;
	}
	
	/**
	 * <p>
	 * 需要返回正确状态时用的构造方法
	 * </p>
	 * @param data 数据对象
	 * @CreateTime 2015-10-26 上午11:12:45 create constructor
	 */
	public RespMsg(T data) {
		this();
		this.data = data;
	}
	
	/**
	 * <p>
	 * 自定义消息状态、返回消息、数据对象
	 * </p>
	 * @param code 状态码
	 * @param msg 状态消息
	 * @param data 数据对象
	 * @CreateTime 2015-10-26 上午11:14:38 create constructor
	 */
	public RespMsg(int code, String msg, T data) {
		this.code = code;
		this.msg = msg;
		this.data = data;
	}

	public T getData() {
		return data;
	}

	public Integer getCode() {
		return code;
	}

	public String getMsg() {
		return msg;
	}

	public void setData(T data) {
		this.data = data;
	}

	public void setCode(Integer code) {
		this.code = code;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}
}
